package com.yh.service;

import com.yh.vo.CustomPageAndNavigate;
import com.yh.vo.CommentVO;

/**
 * @author yuhuan
 * @date 2022/01/13
 */
public interface CommentService {
    /**
     * 查询所有的影评并分页
     *
     * @param pageNum  当前页
     * @param pageSize 页大小
     * @return 返回自定义的分页信息实体
     */
    public CustomPageAndNavigate findCommentAll(Integer pageNum, Integer pageSize);

    /**
     * 根据用户和影片查询影评信息
     *
     * @param commentVO 封装了用户ID和影片ID的对象信息
     * @return 返回查询到的影评详情（包括影评的基本信息和用户的基本信息）
     */
    public CommentVO findCommentByUserAndMovie(CommentVO commentVO);

    /**
     * 根据影片的ID初始化所有的影评信息并分页
     *
     * @param movieId  影片的ID
     * @param pageNum  当前页
     * @param pageSize 页大小
     * @return 返回自定义的分页信息实体
     */
    public CustomPageAndNavigate initCommentVoListToPage(Integer movieId, Integer pageNum, Integer pageSize);

    /**
     * 如果是首次评论；就将评论记录添加到影评表，否则执行修改
     *
     * @param commentVO 需要添加或修改的评论信息
     * @return 返回执行的结果
     */
    public boolean addOrUpdateComment(CommentVO commentVO);

    /**
     * 添加影评，如果还没评论的话
     *
     * @param commentVO 需要添加的评论信息
     * @return 返回添加的结果
     */
    public boolean addCommentIfNotExist(CommentVO commentVO);
}
